[最小生成树] leetcode 1135 Connecting Cities With Minimum Cost

您所在的位置:网站首页 leetcode 1135 [最小生成树] leetcode 1135 Connecting Cities With Minimum Cost

[最小生成树] leetcode 1135 Connecting Cities With Minimum Cost

2024-06-13 01:08| 来源: 网络整理| 查看: 265

problem: https://leetcode.com/contest/biweekly-contest-5/problems/connecting-cities-with-minimum-cost/ 

      双周赛题目。此题就是没有什么变化的最小生成树,以下给出两种经典解法:

 

(1).并查集

        首先假设所有的顶点都是一棵单独的树,之后依次选择权重最小的边,使得它连接两棵不同的树,并将两棵树合并为一棵树。当选择了N - 1条边(只剩下一棵树)的时候,意味着得到了最小生成树。

struct edge { int vertex1; int vertex2; int value; edge(int v1, int v2, int val) :vertex1(v1), vertex2(v2), value(val) { } friend bool operator e2.value; } }; class Solution { public: vector nums; int Find(int x) { while(x != nums[x]) { x = nums[x]; } return x; } void Union(int x, int y) { int px = Find(x); int py = Find(y); if(px != py) { nums[px] = py; } } bool InSameSet(int x,int y) { int px = Find(x); int py = Find(y); return px == py; } int minimumCost(int N, vector& conections) { priority_queue pq; nums.resize(N + 1); for(int i = 1; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3